<?php
// Переменная IN_SCRIPT должна быть определена; global.php должен
// загружаться только с index.php
if (! defined('IN_SCRIPT')) { die('Access Denied!'); }
// Констаны пути серверной стороны
define ('BASE_DIR' , dirname(__FILE__) . '/');   // Корневая папка
define ('TPL_DIR'  , BASE_DIR . 'template/');    // Папка с шаблоном
define ('LIB_DIR'  , BASE_DIR . 'lib/');         // Папка с подлючаемыми файлами
define ('JS_DIR'   , BASE_DIR . 'lib/js/');      // Папка с JavaScript файлами
define ('CLASS_DIR', BASE_DIR . 'lib/classes/'); // Папка с классами

// Константы пути клиентской стороны (CSS, JS, картинки и т.д.)
define ('BASE_URL' , dirname($_SERVER['SCRIPT_NAME'])); // Корневая папка
define ('TPL_URL'  , BASE_URL . '/template');          // Папка с шаблоном
define ('JS_URL'   , BASE_URL . '/lib/js');            // Папка с JavaScript файлами

// Загружаем файл автозагрузки. Файл автозагрузки, в свою очередь, загрузит
// все необохдимы для работы файлы
require_once LIB_DIR . 'autoload.php';
// Создаём единственнию копию класса mysql
mysql::getInstance(MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASS);
// Устанавливает активную базу данных
mysql::getInstance()->setDatabase(MYSQL_DB);

// Проверяем IP адрес пользователя на возможность доступа к сайту. Если IP-адрес пользователя
// находится в "чёрном списке", он не сможет получить доступ к системе.
mysql::getInstance()->select('bans', array('reason', 'ip'), 1, array('ip' => currentIp2long()));
// Если пользователь находится в базе данных дабаненных пользователей
if (mysql::getInstance()->numRows() == 1) {
    $data = mysql::getInstance()->fetch();
    // Передаём браузеру хидер с информацией о кодировки, т.к. Google Chrome
    // не хочет корректно обрабатывать сообщение без этого заголовка
    header ('Content-Type: text/html; charset=UTF-8');
    // Выводим сообщение на экран и завершаем работу скрипта
    die ('Ваш IP адрес был заблокирован. Причина: <i>"' . $data['reason'] . '"</i>');
}

// Здесь мы определяем статус пользователя: если пользователь является админом,
// прошедшим провеку, то ему будут даны админские права
if (admin::getInstance()->isAdmin()) {
    define ('ADMIN_MODE', true);
}